package org.mockserver.socket;
import org.junit.Test;
import org.junit.Before;
import static org.junit.Assert.assertTrue;
import java.security.cert.X509Certificate;
import java.security.KeyPair;
import java.security.PublicKey;
import java.security.PrivateKey;
import java.math.BigInteger;
import java.lang.Exception;
/**
* @author jnormington
*/
public class KeyStoreFactoryTest {
KeyStoreFactory keyStoreFactory;
KeyPair caKeyPair;
@Before
public void setUp() throws Exception {
this.keyStoreFactory = new KeyStoreFactory();
this.caKeyPair = this.keyStoreFactory.generateKeyPair(1024);
}
@Test
public void shouldCreateCACertWithPositiveSerialNumber() throws Exception {
X509Certificate newCaCert = this.keyStoreFactory.createCACert(caKeyPair.getPublic(), caKeyPair.getPrivate());
assertTrue("The cacert serial number is non-negative",
newCaCert.getSerialNumber().compareTo(BigInteger.ZERO) > 0);
}
@Test
public void shouldCreateClientCertWithPositiveSerialNumber() throws Exception {
X509Certificate caCert = this.keyStoreFactory.createCACert(caKeyPair.getPublic(), caKeyPair.getPrivate());
KeyPair clientKeyPair = this.keyStoreFactory.generateKeyPair(1024);
X509Certificate clientCert = this.keyStoreFactory.createClientCert(
clientKeyPair.getPublic(),
caCert,
this.caKeyPair.getPrivate(),
this.caKeyPair.getPublic(),
"example.com",
new String[]{ "www.example.com"},
null
);
assertTrue("The client cert serial number is non-negative",
clientCert.getSerialNumber().compareTo(BigInteger.ZERO) > 0);
}
}